#include "stdafx.h"
#include "MakePostData.h"


#include "Data/Base64.h"
#include "Data/MD5.h"
#include "Data/CharsetConvert.h"

CMakePostData::CMakePostData()
{

}

CMakePostData::~CMakePostData()
{

}

void CMakePostData::SetUserInfo(const CString& strAppCode,const CString& strKey,const CString& strUserID,const CString& strToken)
{
	m_strAppCode = strAppCode;
	m_strKey = strKey;
	m_strUserID = strUserID;
	m_strToken = strToken;

}

void CMakePostData::SetNetInfo(const CString& strIP,UINT uPort)
{
	m_strIP = strIP;
	m_uPort = uPort;
}



bool CMakePostData::UploadFilePostData(CString & szUrl,string &szPostData,const CString& strFileName,LONGLONG dwFileSize,int nType /*= 0*/,int nParentID/*=0*/)
{

	CString strExt;
	try
	{
		CFile file(strFileName,CFile::modeRead|CFile::shareDenyWrite);
		strExt = file.GetFileName();
	}
	catch(...)
	{
		return false;
	}

	CString strUrlTemp=_T("http://%s:%d/Cloud/uploadfile");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&filename=%s&filesize=%I64d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strExt,dwFileSize);

	if (0 != nType)
	{
		CString strTemp;
		strTemp.Format(_T("&type=%d"),nType);

		strData+= strTemp;
	}
	/*else
	{
		strData += _T("&type=4");
	}*/

	if (0 != nParentID)
	{
		CString strTemp;
		strTemp.Format(_T("&parentid=%d"),nParentID);

		strData += strTemp;
	}
	else
	{
		strData += _T("&parentid=0");
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::MoveFilePostData(CString & szUrl,string &szPostData,const CString& strFileId,const CString& strNewFileName,int nParentID)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/movefile");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&fileid=%s&newparentid=%d&newfilename=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strFileId,nParentID,strNewFileName);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::DeleteFilePostData(CString & szUrl,string &szPostData,const vector<CString>& vFileId)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/deletefile");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&fileid=%s");
	CString strId;
	for (unsigned int i = 0 ; i < vFileId.size();i++)
	{
		strId += vFileId.at(i)+_T(",");
	}

	strId = strId.Left(strId.GetLength()-1);

	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strId);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::RecoverFilePostData(CString & szUrl,string &szPostData,const vector<CString>& vFileId)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/recoverfile");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&fileid=%s");
	CString strId;
	for (unsigned int i = 0 ; i < vFileId.size();i++)
	{
		strId += vFileId.at(i)+_T(",");
	}

	strId = strId.Left(strId.GetLength()-1);

	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strId);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::ClearRecyclerPostData(CString & szUrl,string &szPostData,const vector<CString>* pvFileId /*= NULL*/,int nType/*=0*/)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/clearrecycler");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken);

	if (NULL != pvFileId)
	{
		CString strId;
		for (unsigned int i = 0 ; i < pvFileId->size();i++)
		{
			strId += pvFileId->at(i)+_T(",");
		}

		strId = strId.Left(strId.GetLength()-1);

		strData += _T("&fileid=")+strId;
	}

	if (0!=nType)
	{
		CString strTemp;
		strTemp.Format(_T("&type=%d"),nType);

		strData+=strTemp;

	}




	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::SetFilePasswdPostData(CString & szUrl,string &szPostData,const CString& strFileId,const CString& strNewPasswd/*=_T("")*/)
{

	CString strUrlTemp=_T("http://%s:%d/Cloud/setfilepasswd");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&fileid=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strFileId);


	if (_T("")!=strNewPasswd)
	{
		strData+=_T("&newpasswd=")+strNewPasswd;

	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::GetFileListPostData(CString & szUrl,string &szPostData,int nType,const vector<CString>* pvFileId /*= NULL*/,int nParentID/*=0*/,int nIsDelete /*= 0*/,ICloudStatusType iCloudStatus /*= ICloudStatusType_None*/,ISpaceStatusType iSpaceStatus/* = iSpaceStatusType_None*/)
{

	CString strUrlTemp=_T("http://%s:%d/Cloud/getfilelist");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken);

	if (nType != 0)
	{
		CString strType;
		strType.Format(_T("&type=%d"),nType);

		strData += strType;
	}

	if (NULL != pvFileId)
	{
		CString strId;
		for (unsigned int i = 0 ; i < pvFileId->size();i++)
		{
			strId += pvFileId->at(i)+_T(",");
		}

		strId = strId.Left(strId.GetLength()-1);

		strData += _T("&fileid=")+strId;
	}

	if (0!=nParentID)
	{
		CString strTemp;
		strTemp.Format(_T("&parentid=%d"),nParentID);

		strData+=strTemp;

	}

	if (0 != nIsDelete)
	{
		CString strTemp;
		strTemp.Format(_T("&isdelete=%d"),nIsDelete);

		strData+=strTemp;

	}

	if (iCloudStatus != ICloudStatusType_None)
	{
		CString strTemp;
		strTemp.Format(_T("&iCloudStatus=%d"),iCloudStatus);

		strData += strTemp;
	}

	if (iSpaceStatus != ISpaceStatusType_None)
	{
		CString strTemp;
		strTemp.Format(_T("&iSpaceStatus=%d"),iSpaceStatus);

		strData += strTemp;
	}


	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::TransCodePostData(CString & szUrl,string &szPostData,const CString& strFileId,int nWidth/*=0*/,const CString& strClient/*=_T("")*/)
{

	CString strUrlTemp=_T("http://%s:%d/Cloud/transcode");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&fileid=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strFileId);


	if (0!=nWidth)
	{
		CString strTemp;
		strTemp.Format(_T("&width=%d"),nWidth);

		strData+=strTemp;

	}

	if (_T("") != strClient)
	{

		strData+=_T("&client=")+strClient;

	}




	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::RecommendPostData(CString & szUrl,string &szPostData,int nType,const CString& strSource/* = _T("")*/,const CString& strTime/*=_T("")*/,int nImage /*= 1*/,int nNum /*= 0*/,const CString& strClient/*=_T("")*/,int nPage/* = 0*/,int nPageSize /*= 0*/)
{

	CString strUrlTemp=_T("http://%s:%d/Cloud/recommend");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&restype=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType);

	if (_T("") != strSource)
	{
		strData += _T("&source=")+strSource;
	}

	if (_T("") != strTime)
	{
		strData += _T("&reqtime=")+strTime;
	}

	if (0!=nImage)
	{
		CString strTemp;
		strTemp.Format(_T("&image=%d"),nImage);

		strData+=strTemp;

	}

	if (0!=nNum)
	{
		CString strTemp;
		strTemp.Format(_T("&num=%d"),nNum);

		strData+=strTemp;

	}

	if (_T("") != strClient)
	{

		strData+=_T("&client=")+strClient;

	}

	if (0!=nPage)
	{
		CString strTemp;
		strTemp.Format(_T("&page=%d"),nPage);

		strData+=strTemp;

	}

	if (0!=nPageSize)
	{
		CString strTemp;
		strTemp.Format(_T("&pagesize=%d"),nPageSize);

		strData+=strTemp;

	}




	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::AddDownloadPostData(CString & szUrl,string &szPostData,int nType,int nResID)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/adddownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&restype=%d&resid=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType,nResID);


	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::GetDownloadPostData(CString & szUrl,string &szPostData,int nType,const CString& strPath /*= _T("")*/)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/getdownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&restype=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType);

	if (_T("")!=strPath)
	{
		strData += _T("&path=")+strPath;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::MergeDownloadPostData(CString & szUrl,string &szPostData,int nType,const CString& strPath,int nResID,int nMergeID)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/mergedownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&restype=%d&mid=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType,nMergeID);

	if (_T("")!=strPath)
	{
		strData += _T("&path=")+strPath;
	}
	else
	{

		CString strTemp;
		strTemp.Format(_T("&rid=%d"),nResID);

		strData += strTemp;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}

bool CMakePostData::DepartDownloadPostData(CString & szUrl,string &szPostData,int nType,const CString& strPath,int nRid)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/departdownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&restype=%d&path=%s&rid=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType,strPath,nRid);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::DetailPostData(CString & szUrl,string &szPostData,int nRid)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/detail");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&resid=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nRid);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::CreateDirPostData(CString & szUrl,string &szPostData,int nType,const CString& strDirName,int nParentID/*=0*/)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/createdir");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&type=%d&dirname=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType,strDirName);

	if (0 != nParentID)
	{
		CString strTemp;
		strTemp.Format(_T("&parentid=%d"),nParentID);

		strData += strTemp;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::NetSearchPostData(CString & szUrl,string &szPostData,int nQueryType,int nType,const CString& strSearch,int nChildType/*=0*/)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/search");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&querytype=%d&type=%d&search=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nQueryType,nType,strSearch);

	if (0 != nChildType)
	{
		CString strTemp;
		strTemp.Format(_T("&childtype=%d"),nChildType);

		strData += strTemp;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::DataTypePostData(CString & szUrl,string &szPostData,int nType)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/datatype");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&type=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::GetSizePostData(CString & szUrl,string &szPostData)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/getsize");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::DelDownloadPostData(CString & szUrl,string &szPostData,const vector<int>& vId)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/deldownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken);

	CString strID;
	for (unsigned int i = 0; i < vId.size();i++)
	{
		int nID = vId.at(i);
		CString strTemp;
		strTemp.Format(_T("%d,"),nID);

		strID += strTemp;
	}

	strID = strID.Left(strID.GetLength()-1);

	strData += _T("&id=")+strID;

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::RenameDownloadPostData(CString & szUrl,string &szPostData,const CString& strNewName,int nId)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/renamedownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&newname=%s&id=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strNewName,nId);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::GetUploadRecordPostData(CString & szUrl,string &szPostData)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/getuploadrecord");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::TransPercentPostData(CString & szUrl,string &szPostData,const CString& strFileId)
{

	CString strUrlTemp=_T("http://%s:%d/Cloud/transpercent");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&fileid=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strFileId);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::AddYunDownloadPostData(CString & szUrl,string &szPostData,int nType,int nResId,const CString& strResName,int nResChildType,const CString& strVedioUrl,const CString& strImage,const CString& strRemark,int nFileSize )
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/addyundownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&restype=%d&resid=%d&resname=%s&reschildtype=%d&url=%s&image=%s&remark=%s&size=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType,nResId,strResName,nResChildType,strVedioUrl,strImage,strRemark,nFileSize);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;


	return true;
}

bool CMakePostData::GetOffDownloadPostData(CString & szUrl,string &szPostData,int nMovieId)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/getoffdownload");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&moveid=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nMovieId);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;


	return true;
}

bool CMakePostData::OnlineOrderPostData(CString & szUrl,string &szPostData,int nMovieId,int nVideoId,int nIsOnline)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/onlineorder");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&moveid=%d&videoid=%d&isonline=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nMovieId,nVideoId,nIsOnline);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::ResetFilePasswdPostData(CString & szUrl,string &szPostData,const CString& strUserName,const CString& strPasswd,const CString& strFileId,const CString& strNewPasswd /*= _T("")*/)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/resetfilepasswd");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&username=%s&password=%s&fileid=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,strUserName,strPasswd,strFileId);

	if (_T("")!= strNewPasswd)
	{
		strData += _T("&newpasswd=")+strNewPasswd;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::ApkDownPostData(CString & szUrl,string &szPostData,int nApkId)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/apkdown");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&apk_id=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nApkId);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::LoginStatPostData(CString & szUrl,string &szPostData,int nType)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/loginstat");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&type=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::DetailStatPostData(CString & szUrl,string &szPostData,int nType,int nResourceId)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/detailstat");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("userid=%s&token=%s&type=%d&resourceid=%d");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,m_strToken,nType,nResourceId);

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;

}

bool CMakePostData::HDPlayPostData(CString & szUrl,string &szPostData,int nMovieId,int nIsGZ/*=1*/)
{
	CString strUrlTemp=_T("http://%s:%d/Btsplit/hdplay");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("moveid=%d");
	CString strData;
	strData.Format(strDataTemp,nMovieId);

	if (1 != nIsGZ)
	{
		strData += _T("&isgn=n");
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::MovieDetailPostData(CString & szUrl,string &szPostData,const vector<int>& vMid,const CString& strType/* = _T("")*/,int nIsGZ/*=0*/)
{
	CString strUrlTemp=_T("http://%s:%d/Api/moviedetail");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	//	CString strDataTemp=_T("userid=%s&token=%s");
	CString strData;
	//	strData.Format(strDataTemp,m_strUserID);

	CString strID;
	for (unsigned int i = 0 ;i < vMid.size();i++)
	{
		int nID = vMid.at(i);
		CString strTemp;
		strTemp.Format(_T("%d,"),nID);

		strID += strTemp;
	}

	strID = strID.Left(strID.GetLength() - 1);
	strData += _T("&mid=") + strID;
	if (_T("") != strType)
	{
		strData +=_T("&type=")+strType;
	}

	if (1 != nIsGZ)
	{
		strData += _T("&isgz=n");
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::ThirdPartTransCodePostData(CString & szUrl,string &szPostData,const CString& strUUId,
											 const CString& strSrcName,
											 const CString& strCallbackPercentUrl,
											 const CString& strCallbackCompleteUrl,
											 const CString& strDestName/*=_T("")*/,
											 const CString& strDestFormat/*=_T("")*/,
											 const CString& strDestAudio/*=_T("")*/,
											 int nDestWidth/*=0*/,
											 const CString& strContFormat/*=_T("")*/,
											 const CString& strClient/*=_T("")*/)
{
	CString strUrlTemp=_T("http://%s:%d/Api/transcode");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("uuid=%s&src_name=%s&callback_percent=%s&callback_complete=%s");
	CString strData;
	strData.Format(strDataTemp,m_strUserID,strUUId,strSrcName,strCallbackPercentUrl,strCallbackCompleteUrl);

	if (_T("") != strDestName)
	{
		strData += _T("&dest_name=")+strDestName;
	}

	if (_T("")!= strDestFormat)
	{
		strData += _T("&dest_format=") + strDestFormat;
	}

	if (_T("")!= strDestAudio)
	{
		strData += _T("&dest_audio=") + strDestAudio;
	}

	if (0 != nDestWidth)
	{
		CString strTemp;
		strTemp.Format(_T("&dest_width=%d"),nDestWidth);

		strData += strTemp;
	}

	if (_T("") != strContFormat)
	{
		strData += _T("&cont=")+strContFormat;
	}

	if (_T("")!= strClient)
	{
		strData += _T("&client=")+strClient;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::ThirdPartHttpCTSPostData(CString & szUrl,string &szPostData,const CString& strUUId,const CString& strDownUrl,int nTaskType,int nFileSize,const CString& strHash,const CString& strCallbackUrl/*=_T("")*/)
{
	CString strUrlTemp=_T("http://%s:%d/Api/httpcts");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("uuid=%s&down_url=%s&task_type=%d&file_size=%d&content_hash=%s");
	CString strData;
	strData.Format(strDataTemp,strUUId,strDownUrl,nTaskType,nFileSize,strHash);

	if (_T("") != strCallbackUrl)
	{
		strData += _T("&callback_url=")+strCallbackUrl;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::NetSearchDataPostData(CString & szUrl,string &szPostData,int nType,const CString& strSearch,int nChildType/*=0*/,int nPage /*=0*/,int nPageSize/*=0*/)
{
	CString strUrlTemp=_T("http://%s:%d/Cloud/search_data");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("type=%d&search=%s");
	CString strData;
	strData.Format(strDataTemp,nType,strSearch);

	if (0 != nChildType)
	{
		CString strTemp;
		strTemp.Format(_T("&childtype=%d"),nChildType);

		strData += strTemp;
	}

	if (0 != nPage)
	{
		CString strTemp;
		strTemp.Format(_T("&page=%d"),nPage);

		strData += strTemp;
	}

	if (0 != nPageSize)
	{
		CString strTemp;
		strTemp.Format(_T("&pagesize=%d"),nPageSize);

		strData += strTemp;
	}

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;

	return true;
}

bool CMakePostData::GetRealTimeUrlPostData(CString & szUrl,string &szPostData,const CString& strUUId)
{
	CString strUrlTemp=_T("http://%s:%d/Api/get_real_time_url");
	CString strUrl;
	strUrl.Format(strUrlTemp,m_strIP,m_uPort);

	CString strDataTemp=_T("uuid=%s");
	CString strData;
	strData.Format(strDataTemp,strUUId);

	

	string szData = ct2cu(strData);
	string szVerify = ct2cu(strData+m_strKey);

	szPostData = "appcode=";
	szPostData += ct2cu(m_strAppCode);
	szPostData += "&verify=";
	szPostData += MD5A(szVerify.c_str(),szVerify.size());
	szPostData += "&datatype=j";
	szPostData += "&reqstr=";
	szPostData += encode(szData);


	szUrl = strUrl;
	return true;
}
